home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Comm / AmiTCP30b2.lha / src / amitcp / Smakefile < prev   
Makefile  |  1994-04-22  |  10KB  |  323 lines

  1. # $Id: Smakefile,v 3.13 1994/04/22 13:53:20 jraja Exp $
  2. # Copyright (c) 1993 AmiTCP/IP Group, <amitcp-group@hut.fi>,
  3. #                    Helsinki University of Technology, Finland.
  4. #                    All rights reserved.
  5. #
  6. # Smakefile for AmiTCP/IP Project
  7. #
  8. # Created      : Mon Mar  8 03:15:42 1993 ppessi
  9. # Last modified: Sat Mar 26 12:16:21 1994 too
  10. # HISTORY
  11. # $Log: Smakefile,v $
  12. # Revision 3.13  1994/04/22  13:53:20  jraja
  13. # Minor changes
  14. #
  15. # Revision 3.12  1994/03/26  10:18:02  too
  16. # Added kern/accesscontrol.[cho]
  17. #
  18. # Revision 3.11  1994/02/27  00:04:05  ppessi
  19. # Added autodoc generation rules
  20. #
  21. # Revision 3.10  1994/02/18  06:20:15  jraja
  22. # Updated SCOPTIONS for SAS/C 6.51.
  23. #
  24. # Revision 3.9  1994/02/15  20:47:53  jraja
  25. # Removed SCOPTIONS from MISC sources, added SCOPTIONS dependency to the
  26. # amitcp.gst rule.
  27. #
  28. # Revision 3.8  1994/02/03  19:12:31  ppessi
  29. # Changed the default options slightly
  30. #
  31. # Revision 3.7  1994/02/03  04:41:17  ppessi
  32. # Added net/sana2config.[hc]
  33. # Changed the SCOPTIONS mechanism
  34. #
  35. # Revision 3.6  1994/01/23  22:10:49  jraja
  36. # Added net/sana2perror.c, removed special rule for it.
  37. #
  38. # Revision 3.5  1994/01/12  07:13:36  jraja
  39. # Moved sys/cdefs.h to the netinclude.
  40. #
  41. # Revision 3.4  1994/01/09  21:17:52  too
  42. # Added amiga_errlists.c to API_C files
  43. #
  44. # Revision 3.3  1994/01/09  11:55:39  jraja
  45. # Added one space between file names...
  46. #
  47. # Revision 3.2  1994/01/06  13:33:35  too
  48. # Added amiga_sendrecv.[co] and sockargs.h to API files
  49. #
  50. # Revision 1.37  1993/11/11  23:48:08  jraja
  51. # Changed assebler include dir to INCLUDE: (SAS/C standard).
  52. # Added in_cksum.asm and mbuf.i to MISC.
  53. #
  54. # Revision 1.36  1993/10/21  01:58:48  ppessi
  55. # Using optimized in_cksum() from netinet/in_cksum.asm
  56. #
  57. # Revision 1.35  1993/10/14  00:07:22  ppessi
  58. # Added new target, install.
  59. #
  60. # Revision 1.34  1993/10/11  01:41:35  jraja
  61. # Changed /src to /amitcp to accomodate the new directory structure.
  62. #
  63.  
  64. DEST = amitcp:
  65.  
  66. MAKE = smake
  67. CC= sc
  68. LD= sc LINK
  69. AS= a68k
  70.  
  71. RM= delete
  72. INSTALL= copy dates all
  73. AUTODOC= autodoc -C -I -c -t8
  74. MKDIR = makedir
  75.  
  76. CFLAGS= NoOpt Params=Registers Debug=FF AddSymbols
  77. CFLAGS= Opt Params=Registers StripDebug
  78. AFLAGS= -i/amitcp -iINCLUDE:
  79.  
  80. IDIRS=    IDIR=/amitcp IDIR=conf IDIR=protos IDIR=netinclude:
  81. DEFS=    DEF=RCS_ID_C=// DEF=AMITCP DEF=KERNEL \
  82.     DEF=NO_DEBUG DEF=NDEBUG DEF=NO_ARP_DEBUG DEF=NO_TCPDEBUG \
  83.     DEF=NO_ICMPPRINTFS DEF=NO_SOCKBUF_DEBUG \
  84.     DEF=USE_ALIGNED_COPIES DEF=DIRECTED_BROADCAST
  85.  
  86. SCOPTIONS= NoCheckAbort NoStackCheck StructureEquivalence \
  87.     StringMerge StringsConst StringSection=Near \
  88.     NoMultipleIncludes NoErrorSource NoVersion NoErrorHighlight \
  89.     SmallCode SmallData \
  90.     Map MapHunk MapSymbols MapLib MapXReference \
  91.     LinkerOptions=Plain NoIcons Batch \
  92.     OptInl OptimizerInlineLocal OptimizerTime OptimizerScheduler \
  93.     OptComp=5 OptDep=5 OptRDep=5 \
  94.     $(IDIRS) $(DEFS) \
  95.     GlobalSymbolTable=amitcp.gst \
  96.     Ignore=306 Ignore=304 Ignore=308
  97. #
  98. # System headers
  99. #
  100. SYS_H= \
  101.     sys/synch.h sys/uio.h \
  102.     sys/kernel.h sys/malloc.h sys/mbuf.h sys/queue.h \
  103.     sys/socketvar.h sys/domain.h sys/protosw.h \
  104.     sys/systm.h 
  105.  
  106. PROTOS_H= \
  107.     protos/kern/amiga_api_protos.h     protos/kern/amiga_main_protos.h \
  108.     protos/kern/amiga_select_protos.h protos/kern/amiga_time_protos.h \
  109.     protos/kern/amiga_userlib_protos.h protos/kern/kern_malloc_protos.h \
  110.     protos/kern/kern_synch_protos.h protos/kern/subr_prf_protos.h \
  111.     protos/kern/uipc_domain_protos.h \
  112.     protos/kern/uipc_socket2_protos.h protos/kern/uipc_socket_protos.h \
  113.     protos/net/if_loop_protos.h protos/net/if_protos.h \
  114.     protos/net/radix_protos.h protos/net/raw_cb_protos.h \
  115.     protos/net/raw_usrreq_protos.h protos/net/rtsock_protos.h \
  116.     protos/netinet/in_cksum_protos.h protos/netinet/in_pcb_protos.h \
  117.     protos/netinet/in_proto_protos.h protos/netinet/in_protos.h \
  118.     protos/netinet/ip_icmp_protos.h protos/netinet/ip_input_protos.h \
  119.     protos/netinet/ip_output_protos.h protos/netinet/raw_ip_protos.h \
  120.     protos/netinet/tcp_debug_protos.h protos/netinet/tcp_input_protos.h \
  121.     protos/netinet/tcp_output_protos.h protos/netinet/tcp_subr_protos.h \
  122.     protos/netinet/tcp_timer_protos.h protos/netinet/tcp_usrreq_protos.h \
  123.     protos/netinet/udp_usrreq_protos.h
  124.  
  125. # Protocol inspecific network routines:
  126. # network interfaces, input queue scheduling, 
  127. # raw sockets, routing
  128. NET_C=  net/sana2perror.c \
  129.     net/if.c net/if_loop.c \
  130.     net/raw_cb.c net/raw_usrreq.c \
  131.     net/route.c net/rtsock.c net/radix.c \
  132.     net/if_sana.c net/netisr.c net/sana2config.c \
  133.     net/sana2copybuff.c net/sana2arp.c
  134.  
  135. NET_O=  net/sana2perror.o \
  136.     net/if.o net/if_loop.o \
  137.     net/raw_cb.o net/raw_usrreq.o \
  138.     net/route.o net/rtsock.o net/radix.o \
  139.     net/if_sana.o net/netisr.o net/sana2config.o \
  140.     net/sana2copybuff.o net/sana2arp.o
  141.  
  142. NET_H= \
  143.     net/if_types.h net/if_sana.h \
  144.     net/sana2request.h net/sana2arp.h net/sana2config.h \
  145.     net/netisr.h net/raw_cb.h net/radix.h 
  146.  
  147. # netinet -- internet protocols (ip, icmp, tcp, udp, arp)
  148. NETINET_C= \
  149.     netinet/in.c netinet/in_cksum.c netinet/in_pcb.c netinet/in_proto.c \
  150.     netinet/ip_icmp.c \
  151.     netinet/ip_input.c netinet/ip_output.c netinet/raw_ip.c \
  152.     netinet/tcp_debug.c netinet/tcp_input.c netinet/tcp_output.c \
  153.     netinet/tcp_subr.c netinet/tcp_timer.c netinet/tcp_usrreq.c \
  154.     netinet/udp_usrreq.c
  155.  
  156. NETINET_O= \
  157.     netinet/in.o netinet/in_cksum.o netinet/in_pcb.o netinet/in_proto.o \
  158.     netinet/ip_icmp.o \
  159.     netinet/ip_input.o netinet/ip_output.o netinet/raw_ip.o \
  160.     netinet/tcp_debug.o netinet/tcp_input.o netinet/tcp_output.o \
  161.     netinet/tcp_subr.o netinet/tcp_timer.o netinet/tcp_usrreq.o \
  162.     netinet/udp_usrreq.o 
  163.  
  164. NETINET_H= \
  165.     netinet/in_pcb.h netinet/in_var.h netinet/icmp_var.h  \
  166.     netinet/tcpip.h netinet/tcp_debug.h netinet/tcp_fsm.h \
  167.     netinet/tcp_seq.h netinet/tcp_timer.h netinet/tcp_var.h \
  168.     netinet/udp_var.h 
  169.  
  170. # "Kernel" sources
  171. # main, timeouts, syncronization, memory management,
  172. # BSD socket ("Unix interprocess communication") routines,
  173. # logging and netstat rexx interface 
  174. KERN_C= \
  175.     kern/amiga_main.c kern/amiga_time.c \
  176.     kern/amiga_config.c kern/amiga_netdb.c \
  177.     kern/kern_synch.c kern/kern_malloc.c kern/uipc_mbuf.c \
  178.     kern/uipc_domain.c kern/uipc_socket.c kern/uipc_socket2.c \
  179.     kern/amiga_log.c kern/amiga_cstat.c kern/amiga_rexx.c \
  180.     kern/subr_prf.c kern/accesscontrol.c
  181.  
  182. KERN_O= \
  183.     kern/config_var.o \
  184.     kern/amiga_main.o kern/amiga_time.o \
  185.     kern/amiga_config.o kern/amiga_netdb.o \
  186.     kern/kern_synch.o kern/kern_malloc.o kern/uipc_mbuf.o \
  187.     kern/uipc_domain.o kern/uipc_socket.o kern/uipc_socket2.o \
  188.     kern/amiga_log.o kern/amiga_cstat.o kern/amiga_rexx.o \
  189.     kern/subr_prf.o kern/accesscontrol.o
  190.  
  191. KERN_H= \
  192.     kern/amiga_includes.h kern/amiga_time.h kern/amiga_config.h \
  193.     kern/amiga_netdb.h kern/amiga_log.h kern/amiga_rexx.h \
  194.     kern/amiga_subr.h kern/accesscontrol.h
  195.  
  196. # Application interface sources
  197. # Amiga "struct Library" interface, API functions,
  198. API_C=\
  199.     api/amiga_api.c api/amiga_libtables.c api/amiga_syscalls.c \
  200.     api/amiga_sendrecv.c api/amiga_generic.capi/amiga_generic2.c \
  201.     api/amiga_libcalls.c api/amiga_errlists.c \
  202.     api/getxbyy.c api/gethostnamadr.c api/allocdatabuffer.c \
  203.     api/res_comp.c api/res_debug.c api/res_init.c \
  204.     api/res_mkquery.c api/res_query.c api/res_send.c #api/gethna_nores.c
  205.  
  206. API_O=\
  207.     api/amiga_api.o api/amiga_libtables.o api/amiga_syscalls.o \
  208.     api/amiga_sendrecv.o api/amiga_generic.o api/amiga_generic2.o \
  209.     api/amiga_libcalls.o api/amiga_errlists.o \
  210.     api/getxbyy.o api/gethostnamadr.o api/allocdatabuffer.o \
  211.     api/res_comp.o api/res_debug.o api/res_init.o \
  212.     api/res_mkquery.o api/res_query.o api/res_send.o #api/gethna_nores.o
  213.  
  214. API_H=\
  215.     api/amiga_raf.h api/amiga_api.h api/amiga_libcallentry.h \
  216.     api/allocdatabuffer.h api/gethtbynamadr.h \
  217.     api/arpa_nameser.h api/resolv.h api/sockargs.h \
  218.     api/apicalls.h api/apicalls_sasc.h api/apicalls_gnuc.h
  219.  
  220. #
  221. # Misc headers
  222. #
  223. MISC_H=\
  224.     all_includes.h \
  225.     conf/conf.h conf/rcs.h
  226.  
  227. #
  228. # Misc sources
  229. #
  230. MISC= \
  231.     all_includes.c GNUmakefile Smakefile GCCOPTS \
  232.     kern/variables.src kern/config_var.awk \
  233.     netinet/in_cksum.asm sys/mbuf.i
  234.  
  235. #
  236. # Sources containing autodoc entries
  237. #
  238. AUTODOCSRC= \
  239.     api/auto_extras.c api/auto_inetaddr.c api/auto_netdb.c \
  240.     api/auto_nonsocket.c api/auto_protocols.c api/auto_socket.c \
  241.     api/amiga_generic2.c api/gethostnamadr.c 
  242.  
  243. CSRCS=    $(KERN_C) $(NETINET_C) $(NET_C) $(API_C)
  244. OBJS=   $(API_O) $(KERN_O) $(NETINET_O) $(NET_O)
  245. SRCS=    $(CSRCS) $(SYS_H) $(API_H) $(KERN_H) $(NET_H) $(NETINET_H)\
  246.     $(MISC_H) $(MISC) $(PROTOS_H)
  247. LIBSRC= 
  248. LIBS=  # LIB netlib:sana2.lib
  249.  
  250. all: amitcp bsdsocket.doc
  251.  
  252. amitcp: SCOPTIONS $(OBJS)
  253.     $(LD) to=$@ $(LIBSRC) $(LIBS) <WITH <
  254. $(OBJS)
  255. <
  256.  
  257. bsdsocket.doc: $(AUTODOCSRC)
  258.     $(AUTODOC) $(AUTODOCSRC) > $@
  259.  
  260. net:    $(NET_O)
  261. netinet:  $(NETINET_O)
  262. kern:    $(KERN_O)
  263. api:    $(API_O)
  264.  
  265. echo:
  266.      list quick files nohead $(OBJS) lformat="%p%n"
  267.  
  268. gst: amitcp.gst
  269.  
  270. amitcp.gst: SCOPTIONS $(SYS_H) $(API_H) $(KERN_H) $(NET_H) $(NETINET_H) \
  271.             $(MISC_H) $(PROTOS_H)
  272.     -gst unload `list AmiTCP.gst LFORMAT="%f%n"` 
  273.     -$(RM) AmiTCP.gst
  274.     $(CC) $(CFLAGS) MGST=AmiTCP.gst all_includes.c
  275.  
  276. SCOPTIONS: Smakefile
  277.     copy to $@ <from < 
  278. $(SCOPTIONS) 
  279. <
  280.  
  281. netinet/in_cksum.o: netinet/in_cksum.asm
  282.     $(AS) $(AFLAGS) netinet/in_cksum.asm -o$@
  283.  
  284. # Special rule for variables
  285. kern/config_var.o: kern/config_var.c
  286.  
  287. kern/config_var.c: kern/variables.src kern/config_var.awk
  288.     gawk -f kern/config_var.awk -v TARGETTI=C $< > $@
  289.  
  290. # Special rule for TeX
  291. kern/config_var.tex: kern/variables.src kern/config_var.awk
  292.     gawk -f kern/config_var.awk -v TARGETTI=TEX $< > $@ 
  293.  
  294. #
  295. install: all $(DEST)doc
  296.     $(INSTALL) amitcp $(DEST)
  297.     $(INSTALL) bsdsocket.doc $(DEST)doc
  298.  
  299. $(DEST)doc:
  300.     -$(MKDIR) $@
  301.  
  302. clean:
  303.     -$(RM) net/\#?.o netinet/\#?.o kern/\#?.o api/\#?.o \#?.o \#?.(map|lnk)
  304.  
  305. veryclean: clean
  306.     -$(RM) amitcp.gst amitcp
  307.      
  308. date:
  309.     date
  310.  
  311. TAGS:
  312.     etags $(CSRCS) 
  313.  
  314. .c.o:
  315.     $(CC) $(CFLAGS) $*.c
  316.  
  317. .c.s:
  318.     $(CC) $(CFLAGS) $*.c DISASM=$@
  319.  
  320. # DO NOT DELETE THIS LINE -- make depend depends on it.
  321.